package br.com.consigsys.model.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the tcons_tipo_exclusao database table.
 * 
 */
@Entity
@Table(name="tcons_tipo_exclusao")
public class TconsTipoExclusao extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="ID_TIPO_EXCLUSAO", unique=true, nullable=false)
	private Integer idTipoExclusao;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="DATA_ULT_ALTERACAO", nullable=false)
	private Date dataUltAlteracao;

	@Column(name="DESC_TIPO_EXCLUSAO", nullable=false, length=35)
	private String descTipoExclusao;

	@Column(name="USUARIO_ULT_ALTERACAO", nullable=false, length=150)
	private String usuarioUltAlteracao;

	@Column(nullable=false)
	private Integer versao;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_CONSIGNATARIA")
	private TconsConsignataria consignataria;

    public TconsTipoExclusao() {
    }
    
    @PrePersist
    protected void beforePersist(){
    	this.versao = 1;
    	this.dataUltAlteracao = new Date();
    	
    }

    @PreUpdate
    protected void beforeUpdate(){
    	this.dataUltAlteracao = new Date();
    	
    }

	public Integer getIdTipoExclusao() {
		return this.idTipoExclusao;
	}

	public void setIdTipoExclusao(Integer idTipoExclusao) {
		this.idTipoExclusao = idTipoExclusao;
	}

	public Date getDataUltAlteracao() {
		return this.dataUltAlteracao;
	}

	public void setDataUltAlteracao(Date dataUltAlteracao) {
		this.dataUltAlteracao = dataUltAlteracao;
	}

	public String getDescTipoExclusao() {
		return this.descTipoExclusao;
	}

	public void setDescTipoExclusao(String descTipoExclusao) {
		this.descTipoExclusao = descTipoExclusao;
	}

	public String getUsuarioUltAlteracao() {
		return this.usuarioUltAlteracao;
	}

	public void setUsuarioUltAlteracao(String usuarioUltAlteracao) {
		this.usuarioUltAlteracao = usuarioUltAlteracao;
	}

	public Integer getVersao() {
		return this.versao;
	}

	public void setVersao(Integer versao) {
		this.versao = versao;
	}

	@Override
	public Integer getId() {
		return this.getIdTipoExclusao();
	}

	@Override
	public void setId(Integer id) {
		this.setIdTipoExclusao(id);
	}

	public TconsConsignataria getConsignataria() {
		return consignataria;
	}

	public void setConsignataria(TconsConsignataria consignataria) {
		this.consignataria = consignataria;
	}

}